package HuaWeiOd.online;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * 文件缓存
 *
 * @author caihe
 * @date 2023/4/14 19:57
 */
public class A {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int M = Integer.parseInt(sc.nextLine());
        String[] fArr = sc.nextLine().split(" ");
        String[] sArr = sc.nextLine().split(" ");

        // 需要统计文件序列出现的次数和大小
        Map<Integer, File> map = new HashMap<>();
        for (int i = 0; i < fArr.length; i++) {
            int fileId = Integer.parseInt(fArr[i]);
            File file = map.getOrDefault(fileId, new File());
            // 使用缓存了 跳过
            if (file.flag) {
                continue;
            }
            file.id = fileId;
            file.size = Integer.parseInt(sArr[i]);
            file.count++;
            // 判断是否需要缓存  如果文件的总数*文件的大小大于（M + 文件大小） 就需要缓存使用缓存
            // flag true 则 需要缓存
            boolean flag = (file.count * file.size) > (M + file.size);
            if (flag) {
                file.cost = M + file.size;
                file.flag = true;
            } else {
                file.cost = file.count * file.size;
            }
            map.put(fileId, file);
        }

        Integer result = map.values().stream().map(File::getCost).reduce(Integer::sum).get();


        System.out.println(result);
    }

    static class File {
        public int id;
        public int size;
        public int count;
        public int cost;
        public boolean flag;

        public int getCost() {
            return this.cost;
        }
    }
}
